﻿/*----------------------------------------------------------------------------------------
*
*  Copyright 2019, Gao Hai Hui, <fromzeropoint@126.com>.  All rights reserved.
*  https://gitee.com/helloworldghh/xoskit.git
*  Use of this source code is governed by a MIT license
*  that can be found in the License file.
*
----------------------------------------------------------------------------------------*/
#ifndef __E30F98F1_4764_490F_8110_90FD5901B764__
#define __E30F98F1_4764_490F_8110_90FD5901B764__

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// 
// linux headers
// 
#include <unistd.h>  
#include <dirent.h> 
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <stdarg.h>
#include <pthread.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <errno.h>
#include <dlfcn.h> // dlopen、dlsym、dlerror、dlclose的头文件
#include <iconv.h>
#include <mach-o/dyld.h>
#include <signal.h>

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

namespace xos
{
    //
    // typedef
    // 
    typedef unsigned long long  xos_u64;
    typedef long long           xos_i64;

    typedef unsigned int        xos_u32;
    typedef int                 xos_i32;

    typedef unsigned short      xos_u16;
    typedef short               xos_i16;

    typedef unsigned char       xos_u8;
    typedef char                xos_i8;

    typedef xos_u64				xos_uint;
    typedef xos_i64				xos_int;

} // xos

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#ifndef XOS_EXPORT
#define XOS_EXPORT extern "C"
#endif

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

typedef struct _WSABUF
{
    xos::xos_u32 len;     /* the length of the buffer */
    char * buf;      /* the pointer to the buffer */
} WSABUF;

#endif // __E30F98F1_4764_490F_8110_90FD5901B764__
